草庐IT

c++ - DrawText VS TextOut Win32

全部标签

c - 如何在 C 中覆盖 Windows 系统函数

我们正在为将在汽车硬件上运行的软件组件开发测试模拟器(在Windows环境中,使用C语言)。实际上,测试模拟器是一个Windows应用程序,它包括作为核心源的sw组件,并允许测试核心的I/O接口(interface),并以这种方式测试其正确行为。不幸的是,在核心中定义的函数GetSystemTime导致与同名的Windows函数发生冲突:[core]returnTypeGetSystemsTime(UInt32*time)[windows]WINBASEAPIVOIDWINAPIGetSystemTime(LPSYSTEMTIMElpSystemTime)无法修改核心功能,因为它是组件

c - wglCreateContext 失败,错误为 "The pixel format is invalid"

我正在尝试使用上下文访问整个屏幕。这是我当前的代码(目前只有这个文件):#include#include#include#include#includeintmain(intargc,char*argv[]){HDChdc=GetDC(NULL);HGLRChglrc;hglrc=wglCreateContext(hdc);//Handleerrorsif(hglrc==NULL){DWORDerrorCode=GetLastError();LPVOIDlpMsgBuf;FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAG

windows - 使用 pywin32 库中的 win32evtlog 写入 Windows 事件日志

我有一个将在Windows服务器上运行的简单Python脚本,我想将整个脚本中的特定事件记录到Windows事件日志中。有没有人有一个简单而精确的写入Windows事件日志的示例,以便我可以从事件查看器中查看事件。我已经通读了pywin32库的文档,但找不到任何明确的示例。我尝试使用以下方法构建事件:win32evtlogutil.ReportEvent(ApplicationName,EventID,EventCategory,EventType,Inserts,Data,SID)我没有成功,有人可以更深入地解释ReportEvent吗? 最佳答案

windows - 如何让自定义视频媒体/流接收器在媒体基础中请求 RGB32 帧?

我正在尝试为OpenGL应用程序中的视频播放制作自定义媒体接收器(没有各种WGL_NV_DX_INTEROP,因为我不确定我的所有目标设备是否都支持它)。到目前为止,我所做的是编写一个接受RGB32样本的自定义流接收器,并使用媒体session设置播放,但是我在播放mp4文件的初始测试中遇到了问题:生成的拓扑中的一个(或多个)MFT不断失败,错误代码为MF_E_TRANSFORM_NEED_MORE_INPUT,因此我的流接收器从未接收到样本请求了几个样本后,媒体session收到事件MF_E_ATTRIBUTENOTFOUND,但我仍然不知道它来自哪里但是,如果我将流接收器配置为接收

c++ - VS2015 没有链接 user32.lib

我刚刚继承了一个有10年历史的项目的维护工作,其中包括将其从VS2005移至VS2015。我大部分时间都在那里,但是当我链接时出现此错误:错误LNK2019:无法解析的外部符号__imp__MessageBoxA@16快速搜索发现这需要user32.lib。当我转到属性->链接器->附加依赖项时,我在继承值下看到该库列表,但它仍然没有链接。当我明确添加硬编码路径和文件名(C:\ProgramFiles(x86)\WindowsKits\8.1\Lib\winv6.3\um\x86\user32.lib)作为另一个依赖项时,它会成功链接...这没关系,我想,但如果没有别的,我依赖那个特定

c - 为什么 Windows 要求导入 DLL 数据?

在Windows上,可以从DLL加载数据,但需要通过导入地址表中的指针进行间接访问。因此,编译器必须知道正在访问的对象是否是使用__declspec(dllimport)从DLL导入的。类型说明符。这很不幸,因为这意味着设计用作静态库或动态库的Windows库的header需要知道程序链接到哪个版本的库。此要求不适用于函数,这些函数是为DLL透明地模拟的,stub函数调用实际函数,其地址存储在导入地址表中。在Linux上,动态链接器(ld.so)将所有链接数据对象的值从共享对象复制到每个进程的私有(private)映射区域。这不需要间接寻址,因为私有(private)映射区域的地址是模

c - Detecting if stdout is a console with MS Visual compilation, mingw64提供的console

我维护一个生成二进制数据的命令行实用程序。请求时,数据可以重定向到stdout。这在stdout被重定向到管道或文件时有效,但当stdout是一个控制台时,情况就不太一样了,因为它会垃圾控制台。为了保护用户免受此类错误,程序必须检测stdout是否是控制台,并在是时退出。现在,这并不是什么新鲜事,快速浏览一下Internet就会发现多种解决方案。主要缺点是没有“通用”方法,VisualStudio需要自己的风格。我用于Visual的控制台检测器有一个缺陷:它没有检测到stdout是一个控制台当控制台由mingw提供时,我认为这意味着它是mintty。这里是相关的代码部分:#ifdefi

c - 如何在 C 中的 DLL 中执行线程

我创建了一个运行3个工作线程的DLL,主线程处于循环中等待线程完成。线程已创建,但未执行线程。我尝试在使用CreateThread()创建的函数中设置MessageBox函数,但该框没有出现。我也尝试过调试,CreateThread()的返回值有效,因此线程被创建。BOOLWINAPIDllMain(){main();return1;}intmain(){HANDLEh1,h2,h3;h1=CreateThread(first)...h2=CreateThread(second)...h3=CreateThread(third)...WaitForSingleObject(h3,INF

windows - 您可以在64位安装中运行32位Cygwin应用程序吗?

是否可以在64位安装中运行32位Cygwin应用程序?动机:如Where'stherxvt-nativeutilitygoneincygwin1.7.26for64bitwindows?所讨论,rxvt-native是Windows中我最喜欢的终端模拟器,目前在64Cygwin中不可用。我的希望是,就像我可以在64位Linux发行版上运行32位Linux应用程序一样,也许我可以在64位Cygwin上运行32位rxvt。我尝试将可执行文件从旧PC的C:\cygwin\bin目录复制到新PC的C:\cygwin64\usr\local\bin目录,但无法运行。当我运行该过程时,它只是默默地

c - 句柄无效

尝试使用SetConsoleScreenBufferSize但失败并显示“句柄无效”。在最后一个错误。将发布所有代码,但这里有一些要点:使用它来调整缓冲区大小:intTGHandleResizeEvent(structTGHandle*tgHandle,INPUT_RECORDrecord){if(record.EventType==WINDOW_BUFFER_SIZE_EVENT){WINDOW_BUFFER_SIZE_RECORDsize=record.Event.WindowBufferSizeEvent;sizeTGDrawBuffer(&tgHandle->drawBuffe